﻿/***********************************************************************
 * <copyright file="IPermissionInSite.cs" company="B/S JSC">
 * -->    Copyright (C) statement. All right reserved
 * </copyright>
 * 
 * Created:   Hoang Bich Son 
 * Email:    sonhb@newman.vn
 * Website:
 * Create Date: Monday, March 31, 2014
 * Usage: 
 * 
 * RevisionHistory: 
 * Date         Author               Description 
 * 
 * ************************************************************************/

using System.Collections.Generic;
using BusinessSecurity;

namespace DataSecurity.StandartInterfaces
{
    /// <summary>
    /// IPermissionInSite
    /// </summary>
    public interface IPermissionInSite
    {
        /// <summary>
        /// Gets the specified identifier.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <returns></returns>
        PermissionInSite Get(int id);

        /// <summary>
        /// Gets the specified name.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <returns></returns>
        PermissionInSite Get(string name);

        /// <summary>
        /// Gets the list.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <returns></returns>
        List<PermissionInSite> GetPermissionInSiteByPermissionId(int id);

        /// <summary>
        /// Gets the permission in site by site identifier.
        /// </summary>
        /// <param name="id">The identifier.</param>
        /// <returns></returns>
        List<PermissionInSite> GetPermissionInSiteBySiteId(int id);

        /// <summary>
        /// Gets the permission in site by identifier.
        /// </summary>
        /// <param name="permissionId">The permission identifier.</param>
        /// <param name="siteId">The site identifier.</param>
        /// <returns></returns>
        List<PermissionInSite> GetPermissionInSiteById(int permissionId,int siteId);

        /// <summary>
        /// Gets the paged.
        /// </summary>
        /// <param name="currentPage">The current page.</param>
        /// <returns></returns>
        List<PermissionInSite> GetPaged(int currentPage);        

        /// <summary>
        /// Inserts the specified permission.
        /// </summary>
        /// <param name="permissionInSites">The permission in sites.</param>
        /// <returns></returns>
        object Insert(List<PermissionInSite> permissionInSites);

        /// <summary>
        /// Updates the specified permission.
        /// </summary>
        /// <param name="permissionInSite">The permission in site.</param>
        /// <returns></returns>
        object Update(PermissionInSite permissionInSite);

        /// <summary>
        /// Deletes the specified permission.
        /// </summary>
        /// <param name="permissionId">The permission identifier.</param>
        /// <returns></returns>
        object Delete(int permissionId);
    }
}
